﻿using BLL;
using BONGDA.Excel;
using DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BONGDA
{
    public partial class frmTours : Form
    {
        int maSan;
        public frmTours()
        {
            InitializeComponent();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            frmAddTours frm = new frmAddTours();
            frm.ShowDialog();
            HienThiDS();
        }

        private void frmTours_Load(object sender, EventArgs e)
        {
            HienThiDS();
            DataTable dt = SanVanDong_BLL.SelectAll();
            if (dt.Rows.Count == 0)
            {
                lblMa.Text = "";
                lblTen.Text = "";
                lblDiaChi.Text = "";
                lblSucChua.Text = "";
                lblNamXay.Text = "";
                picTours.Image = null;
            }
            else
            {
                try
                {
                    lblMa.Text = dt.Rows[0]["MaSan"].ToString();
                    maSan = Convert.ToInt32(dt.Rows[0]["MaSan"].ToString());
                    lblTen.Text = dt.Rows[0]["TenSan"].ToString();
                    lblDiaChi.Text = dt.Rows[0]["DiaDiem"].ToString();
                    lblSucChua.Text = dt.Rows[0]["SucChua"].ToString();
                    lblNamXay.Text = dt.Rows[0]["NamXay"].ToString();
                    Image FetchedImg;
                    MemoryStream stream = new MemoryStream((byte[])dt.Rows[0]["Tour"]);
                    FetchedImg = Image.FromStream(stream);
                    picTours.Image = FetchedImg;
                }
                catch (Exception)
                {
                }
                
            }            
        }
        private void HienThiDS()
        {
            DataTable dt = SanVanDong_BLL.SelectTen();
            dgvSanVanDong.DataSource = dt;
        }

        private void dgvSanVanDong_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                if (dgvSanVanDong.SelectedRows.Count > 0)
                {
                    SanVanDong_DTO dto = SanVanDong_BLL.SelectByID(
                                Convert.ToInt32(dgvSanVanDong.SelectedRows[0].Cells[0].Value));
                    lblMa.Text = dto.MaSan.ToString();
                    maSan = Convert.ToInt32(dto.MaSan.ToString());
                    lblTen.Text = dto.TenSan;
                    lblDiaChi.Text = dto.DiaDiem;
                    lblNamXay.Text = dto.NamXay.ToString();
                    lblSucChua.Text = dto.SucChua.ToString();
                    Image FetchedImg;
                    MemoryStream stream = new MemoryStream(dto.ByteTours);
                    FetchedImg = Image.FromStream(stream);
                    picTours.Image = FetchedImg;
                }
            }
            catch (Exception)
            {
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable tableTam = DoiBong_BLL.SelectBySan(maSan);
                if (tableTam.Rows.Count != 0)
                {
                    MessageBox.Show("SÂN VẬN ĐỘNG này không thể xóa!",
                                "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                    return;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Chọn SÂN VẬN ĐỘNG muốn xóa!",
                                "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                return;
            }
            try
            {
                int maTam = Convert.ToInt32(maSan);
                SanVanDong_DTO dto = SanVanDong_BLL.SelectByID(maTam);
                DialogResult kq;
                kq = MessageBox.Show("Xóa sân vận động \"" + dto.TenSan + "\"?", "Thông báo",
                MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (kq == DialogResult.OK)
                {
                    SanVanDong_BLL.Delete(maTam);
                    HienThiDS(); 
                    MessageBox.Show("Xóa SÂN VẬN ĐỘNG thành công!",
                                 "Thông báo",
                                 MessageBoxButtons.OK,
                                 MessageBoxIcon.Information);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Chọn SÂN VẬN ĐỘNG muốn xóa!",
                                "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            
            try
            {
                if (maSan == 0)
                {
                    MessageBox.Show("Chọn SÂN VẬN ĐỘNG muốn chỉnh sữa!",
                                "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                    return;
                }
                frmUpTours frm = new frmUpTours(maSan);
                frm.ShowDialog();
                HienThiDS();
            }
            catch (Exception)
            {
                MessageBox.Show("Chọn SÂN VẬN ĐỘNG muốn chỉnh sữa!",
                                "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
            
        }

        private void btnEx_Click(object sender, EventArgs e)
        {
            try
            {
                string oldPath = Directory.GetCurrentDirectory();
                SaveFileDialog sf = new SaveFileDialog();
                sf.ShowDialog();
                string strFileName = sf.FileName;
                Directory.SetCurrentDirectory(oldPath);
                ExcelWrite myExcel = new ExcelWrite();
                List<String> list = myExcel.DGVToExcel(dgvSanVanDong);
                String filePath = Directory.GetCurrentDirectory() + strFileName;
                myExcel.WriteDateToExcel(strFileName, list, "A1", "F1", "A2");
                MessageBox.Show("Export dữ liệu thành công!", "Thông báo",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
                Process.Start(strFileName);
            }
            catch (Exception)
            {
            }
        }

        private void btnIm_Click(object sender, EventArgs e)
        {
            
        }
    }
}
